/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package td1;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

/**
 * Barre des menus regroupant la liste des actions faisable dans l'application
 * @author saluzzo
 */
public class BarreDesMenus extends JMenuBar implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == this.Nouveau) {
            //Remise a zero de la zone de dessin
            ((IHM)this.Parent).getControleur().action("Canvas", "clear", null, null);
        }
        if(e.getSource() == this.Enregistrer) {
            //Demande d'enregistrement de la zone de dessin
            FenetreSauvegarder test = new FenetreSauvegarder(System.getenv("HOMEPATH"), ((IHM)this.Parent).jc);
        }
        if(e.getSource() == this.Fermer) {
            //Demande de fermeture de l'application entierement
            System.exit(1);
        }
        if(e.getSource() == this.Carre) {
            //Demande d'ouverture de l'inspecteur prédéfini sur carré
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 0);
        }
        if(e.getSource() == this.CerfVolant) {
            //Demande d'ouverture de l'inspecteur prédéfini sur Cerf Volant
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 1);
        }
        if(e.getSource() == this.Losange) {
            //Demande d'ouverture de l'inspecteur prédéfini sur Losange
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 2);
        }
        if(e.getSource() == this.Parallelogramme) {
            //Demande d'ouverture de l'inspecteur prédéfini sur Parallelogramme
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 3);
        }
        if(e.getSource() == this.Quadrilatere) {
            //Demande d'ouverture de l'inspecteur prédéfini sur Quadrilatere
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 4);
        }
        if(e.getSource() == this.Rectangle) {
            //Demande d'ouverture de l'inspecteur prédéfini sur Rectangle
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 5);
        }
        if(e.getSource() == this.Trapeze) {
            //Demande d'ouverture de l'inspecteur prédéfini sur Trapeze
            InspecteurQuadrilatere Inspecteur = new InspecteurQuadrilatere((IHM)Parent, 6);
        }
        if(e.getSource() == this.AProposDe) {
            //Demande d'ouverture de la boite de dialogue "A propos de..."
            DialogueAProposDe Dialogue = new DialogueAProposDe(Parent);
            Dialogue.setVisible(true);
        }
    }

    /*
     * Constructeur par défaut de la barre des menu
     * @param parent    Fenetre principal contenant la barre des menus
     */
    public BarreDesMenus(JFrame parent) {
        super();
        this.Parent = parent;

        //Création de tout les Items et les Menus contenus dans la barre:
        this.Fichier = new JMenu("Fichier");
        this.Nouveau = new JMenuItem("Nouveau");
        this.Enregistrer = new JMenuItem("Enregistrer");
        this.Fermer = new JMenuItem("Fermer");
        this.Ajouter = new JMenu("Ajouter");
        this.Carre = new JMenuItem("Carré");
        this.CerfVolant = new JMenuItem("Cerf Volant");
        this.Losange = new JMenuItem("Losange");
        this.Parallelogramme = new JMenuItem("Parallelogramme");
        this.Quadrilatere = new JMenuItem("Quadrilatere");
        this.Rectangle = new JMenuItem("Rectangle");
        this.Trapeze = new JMenuItem("Trapeze");
        this.Aide = new JMenu("?");
        this.AProposDe = new JMenuItem("A Propos de...");

        //Ajout des items du sous menu "Fichier"
        Fichier.add(this.Nouveau);
        Fichier.add(this.Enregistrer);
        Fichier.add(this.Fermer);

        //Ajout des items du sous menu "Ajouter"
        Ajouter.add(this.Carre);
        Ajouter.add(this.CerfVolant);
        Ajouter.add(this.Losange);
        Ajouter.add(this.Parallelogramme);
        Ajouter.add(this.Quadrilatere);
        Ajouter.add(this.Rectangle);
        Ajouter.add(this.Trapeze);

        //Ajout des items du sous menu "Aide"
        Aide.add(this.AProposDe);

        //Ajout des sous menus a la barre
        this.add(this.Fichier);
        this.add(this.Ajouter);
        this.add(this.Aide);

        //Parcoure de tout les items contenu dans la barre pour les assigner a un ActionListener.
        for (Component a : this.getComponents()) {
            for (Component b : ((JMenu) a).getMenuComponents()) {
                ((JMenuItem)b).addActionListener(this);
            }
        }
    }

    private JMenu Fichier;
    private JMenuItem Nouveau;
    private JMenuItem Enregistrer;
    private JMenuItem Fermer;
    private JMenu Ajouter;
    private JMenuItem Carre;
    private JMenuItem CerfVolant;
    private JMenuItem Losange;
    private JMenuItem Parallelogramme;
    private JMenuItem Quadrilatere;
    private JMenuItem Rectangle;
    private JMenuItem Trapeze;
    private JMenu Aide;
    private JMenuItem AProposDe;

    private JFrame Parent;
    
    public static void main(String[] args) {
        JFrame test = new JFrame();
        test.add(new BarreDesMenus(test));
        test.setVisible(true);
        test.pack();
    }
}
